// 封装 消息提示框
export function showMsg(title='数据加载失败',icon='error',duration=1200,){//默认值
	uni.showToast({
		title,
		icon,
		duration,
		mask:true,
	})
}


// 上传本地图片/视频
export function uploadImage(count=1,type='image'){
	return new Promise((resolve,reject)=>{
		wx.chooseMedia({
			count,//最多可以选择的文件个数
			mediaType:[type],//文件类型  image图片，video视频
			sourceType:['album','camera'],//图片和视频的来源 album从相册中选择  camera使用相机拍照
		}).then(res=>{
			resolve(res.tempFiles)
		}).catch(err=>{
			reject(err)
		})
	})
}

import {init} from '@/Acc-config/init.js'

// 上传图片或者视频到云存储
export async function cloud(path){
	// 修改图片路径，避免图片路径出现重复的
	let imgio=path.lastIndexOf('.')//拿到.后面的字符串的位置
	let eximg=path.slice(imgio)//拿到包括.后面的字符串
	// 使用时间戳和随机数拼接上截取的路径字符串
	let cloudpath = `${Date.now()}-${Math.floor(Math.random(0,1) * 10000000)}${eximg}`
	
	const db=await init()
	return new Promise((resolve,reject)=>{
		db.uploadFile({//uploadFile将本地资源上传至云存储空间
			cloudPath: 'media/'+cloudpath,//云存储路径加上拼接好的文件路径
			  filePath: path, // 要上传的本地资源路径
		}).then(async (res)=>{
			// 该资源设计到共享(用户端和商家端) 直接返回的路径无法实现两端共享，无法在浏览器中打开
			// 解决方法：getTempFileURL用云文件 ID 换取真实链接   如果不涉及到共享这句代码可以不写
			const url=await db.getTempFileURL({fileList:[res.fileID]})
			resolve(url.fileList[0].tempFileURL)//返回Promise成功的结果
		}).catch(err=>{
			reject(err)//返回Promise失败的结果
		})
	})
}

// 图片预览
export function previewPicture(image,arr){
	uni.previewImage({
		current:image,//当前显示图片的http链接
		urls:arr //需要预览的图片http链接列表['htt.xxx.jpg','htt.xxx.jpg']
	})
}

// 上传多张图片
// uploadImgs：图片数组  key:上传的是图片还是视频 默认是图片
export function multi(uploadImgs,key='image'){
	let stotrage=[]
	return new Promise((resolve,reject)=>{
		uploadImgs.forEach(async item=>{
			// 将图片上传到云存储中
			let nm=await this.cloud(item.image)
			stotrage.push({[key]:nm})
			// 等全部的图片都上传到云存储中，再全部返回成功的结果
			if(stotrage.length==uploadImgs.length){
				resolve(stotrage)
			}
		})
	})
}


